package main

import (
	"fmt"
)

type Phone interface {
	call()
}

type Pay interface {
	pay()
}

type NokiaPhone struct {
}

func (NokiaPhone) call() {
	fmt.Println("I am Nokia, I can call you!")
}

type IPhone struct {
}

func (IPhone) call() {
	fmt.Println("I am iPhone, I can call you!")
}

func (IPhone) pay() {
	fmt.Println("I am IPhone, I can pay")
}

func main() {
	var phone Phone
	//var pay Pay

	phone = new(NokiaPhone)
	phone.call()

	x := new(IPhone)

	//phone = Phone(x)
	x.call()

	//pay = Pay(x)
	x.pay()
}
